Proposta de análise da cobertura (principalmente florestal) do município do Rio de Janeiro em diferentes anos, através de ferramentas espaciais do R.
Aqui apresentarei apenas a análise apra um ano: 2006.
A proposta é fazermos uma classificação não supervisionada baseada em estatística espacial, para os anos pertinentes aos projeto FAPERJ Mutirão de reflorestamento. A partir da classificação não supervisionada, podemos atribuir a cada classe, a sua respectiva cobertura/uso.
Com isso:
# Plotting input data
plotRGB(rj_2016, r=4, g=3, b=2, stretch='hist')
plot(rj, add=TRUE)
Na função que criamos, podemos usar dois algoritmos básicos: Kmeans e randomForest; No exemplo dado, foi usado apenas o algoritmos Kmeans, que tem como vantagem o uso de todos os pixels da imagem na análise de grupamento.
# Running cluster analysis (Automatic classification)
source('~/Projetos/SegmentationFCT/segmentation.R')
args(segmentation)
segmentation(envLayer = rj_2016_2, studyArea = rj, projName = "RJ_2016",
randomforest = FALSE, random.pt = NULL, Kmeans = TRUE, ngroup = 6,
polygonize = FALSE, seed = 123)
# Result
RJ_2016_seg <- raster('./km_segmentation_RJ_2016.tif')
plot(RJ_2016_seg, col=pallete)
# Result
par(mfrow=c(2,1))
plotRGB(rj_2016, 4, 3, 2, stretch='hist')
plot(RJ_2016_seg, col=pallete)
Basta portanto, identificar a cada classe criada o respectivo uso e/ou cobertura da terra. O tempo de processamento não é grande. E, depois, podemos fazer uma mascara para vermos a evolução das áreas do mutirão, já que estamos analisando todo o município.
Visualmente, podemos ver que:
Um pequeno exemplo de pós processamento é vermos como cada classe identificada está se comportando em relação às bandas da imagem de satélite (resposta espectral).
O exemplo dado é muito básico, mas é possível evoluimos bastante nisso.
# Analysing band relation with category
graph <- addLayer(rj_2016, RJ_2016_seg)
class.df <- (as.data.frame(graph))
head(class.df)
colnames(class.df)<-c('um','dois','tres','quatro','cinco','seis','class')
#Plot
library(ggplot2)
ggplot(class.df, aes(x=um, y=dois, colour=as.factor(class))) + geom_point()
ggsave('./class_analysis.png')
Ainda não pude pesquisar, mas imagino que existam pacotes espacíficos do R para Sensoriamento Remoto, que poderão nos ajduar bastante nas análises.
Acho que assim que terminar com as modelagens para Mata Atlantica, poderiamos ver isso.